The present invention relates to a method and system for color conversion of halftone images, and in particular, to a method and system which eliminates distortions caused by color conversion of such halftone images.
Images are often digitally coded as two-dimensional arrays of picture elements (pixels). In order to represent every color in the image, the images are coded according to separations, which are used to determine the color of each pixel. A pixel is a plurality of words, each word being the digital representation of one separation at one picture element. These words are usually integer variables. Thus, the color of each pixel is determined according to the combination of words used to code the separations of the pixel.
Images are commonly coded with three separations named Red, Green and Blue, or with four separations named Cyan, Magenta, Yellow and Black. Four separation images are particularly useful in preparing images to be printed on printing presses, and printing presses often use four inks named Cyan, Magenta, Yellow and Black in order to effectively reproduce the colors of the digitally coded image.
However, some images contain only one separation. A one separation array of one separation pixels may represent, for example, a black & white image, or it may represent an image consisting of various levels of gray. In other cases, a one separation array of one separation pixels may serve to carry information regarding one particular separation out of a plurality of such arrays describing a multi-separation image.
Two commonly used methods for digital image coding are the halftone and continuous tone methods. The halftone method codes an image according to words of one bit only, such that each word can only have two possible values. These values are 0 and1 as binary numbers, but they are often interpreted as representing black and white. In some implementations 0 represents white and 1 represents black, and in others the opposite is true. In either case, images coded according to this method are often called "halftone" (HT) or "bitmap" images.
A halftone or bitmap image is composed of only black and white elements. However, when an image is printed, and becomes viewable by a human observer, each pixel is usually very small in size, and the fine detail of the boundaries between pixels is often lost to the human eye. In this case, the human eye observes continuously varying levels of gray. Areas containing a relatively high density of black pixels appear darker, while areas containing a relatively low density of black pixels appear lighter.
Continuous tone (CT) images are coded with words of more than one bit, so that each word more than two possible values. Often each word is of 8 bits (one byte), and represents 256 possible values. In this case the 256 values are often interpreted as representing 256 shades of gray from black to white. In some implementations 0 represents white and 256 represents black, and in others the opposite is true. Other continuous tone coding methods are also possible.
Therefore, a halftone image is coded as arrays of bits, in which each pixel is represented by a plurality of bits or Boolean variables, each having only two possible values, for example: 0 or 1, true or false, black or white, light or dark. By contrast, a continuous tone image is coded as an array of words, in which each pixel is represented by a plurality of words. Each word has more than two possible values, and commonly has 256 possible values, for example.
Halftone or bitmap images are of particular importance to the printing industry, as many useful printing processes can handle only half tone images, and are unable to print continuous tone images. On the other hand, many useful printing processes, and many display technologies, can only produce CT images, and cannot produce sufficiently small picture elements to represent images as an array of binary pixels.
Both CT and HT coded images are often processed and stored as arrays of pixels, in which case they are both often called raster images. There are many benefits for processing and storing images in digital form, and so this practice of processing and storing images as arrays of pixels is now widespread. One important kind of digital image processing is color conversion. Color conversion is defined herein as a process which operates on a pixel by pixel basis, so that each pixel is processed individually, without any effect on any other pixels. Thus, the more general color conversion "T" on a pixel "P" can be described by Equation 1. EQU P'=T(P) Equation 1:
Each pixel has been defined as a plurality of words, as in Equation 2. EQU P={W.sub.1,W.sub.2, . . . ,W.sub.n } Equation 2:
This yields the definition of a general color conversion as described by Equation 3. EQU P'=T(W.sub.1,W.sub.2,. . . ,W.sub.n) Equation 3:
Thus defined, a color conversion is very useful when applied to CT images, and indeed is widely used for such images. Often, the color conversion is implemented by a set of look-up-tables.
However, such a color conversion is not as useful when applied to HT images. For example, for one-separation images, there are only 4 possible color conversions: one yield an all 0 image, one yield an all 1 image, one does not change the image at all, and the last negates the image.
Therefore, a process is required for color changes of HT images which is equivalent to the color conversion process for CT images. One possible implementation of such a process would involve converting an HT image to a CT image, performing the color conversion process on the CT image, and then converting the CT image back to the HT image. The process of conversion of a CT image to an HT image is commonly known as "screening" ("S"). As defined herein, the process of conversion of an HT image to a CT image is "descreening"("DS"). Both operations seek to produce a pair of images, one HT and one CT, which are substantially indistinguishable to a human observer if fine details of the images are not inspected too closely. Thus, this implementation of the color conversion process for HT images can be defined as follows.
First `DS` Step: convert HT to CT PA1 Second `T` Step: affect color conversion of CT, as in Equation 1 PA1 Third `S` Step: convert CT to HT
Unfortunately, a straightforward implementation of this color conversion process on HT images has the drawback of loss of information in the conversion from the original HT image to the CT image. A screening step which recovers this information is difficult to construct. For example, many HT images contain clusters of pixels of the same color, and the shape of these clusters is important to the quality of the image. The distance between clusters is also important, and may be constant or randomly variable. Both the shape of the clusters and the distance between them, as well as the existence of any clusters of the same color pixels, are lost in the process of DS. Thus, such an implementation of the process of color conversion of the HT image clearly has many drawbacks.
There is therefore a need for, and it would be useful to have, a color conversion method and system which operates on HT images with minimal loss of HT specific information, and which enables the color conversion process to be variable and user defined, for example through the specification of a set of lookup-tables.